Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Testautomatisierung</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Testautomatisierung"> <link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Testautomatisierung rootpage-Testautomatisierung skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Testautomatisierung</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><p>Unter <b>Testautomatisierung</b> (auch <b>Testautomation</b>) ist die Automatisierung von Aktivitäten im <a href="Test" title="Test">Test</a> zu verstehen, sowohl beim <a href="Softwaretest" title="Softwaretest">Softwaretest</a> als auch bei Hardware.
</p>

<div class="mw-heading mw-heading2"><h2 id="Motivation">Motivation</h2></div>
<p>In der Softwareentwicklung ist es besonders wichtig, einen festen, definierten Status der Software zu kennen, so z.&nbsp;B.:
</p>
<ul><li>Ist die jetzige, neue Softwareversion besser als die alte Version?</li></ul>
<p>Automatische Tests, die nach dem Einspielen einer Änderung unerwünschte Auswirkungen auf andere Funktionen abtesten, werden <a href="Regressionstest" title="Regressionstest">Regressionstests</a> genannt. Sie machen Software bezüglich ihrer Qualität erst messbar und zeigen mögliche Nebeneffekte von vorgenommenen Änderungen direkt und erkennbar an. Sie dienen als direkte Rückkopplung für Entwickler und für Tester, die unter Umständen nicht in der Lage sind, das Gesamtsoftwaresystem auf einmal zu überschauen, sowie zur Erkennung von Nebeneffekten und Folgefehlern.
</p><p>Die Testautomatisierung liefert demnach eine <a href="Softwaremetrik" title="Softwaremetrik">Metrik</a>, die Anzahl erfolgreicher <a href="Testfall" title="Testfall">Testfälle</a> pro Testlauf. Dadurch können folgende Fragen beantwortet werden:
</p>
<ul><li>Wann ist eine neue <a href="Anforderung_(Informatik)" title="Anforderung (Informatik)">Anforderung</a> durch eine Software vollständig erfüllt?</li>
<li>Wann ist ein <a href="Programmfehler" title="Programmfehler">Programmfehler</a> behoben?</li>
<li>Wann ist die Arbeit des Entwicklers beendet?</li>
<li>Wer ist zu welchem Zeitpunkt wofür verantwortlich?</li>
<li>Welche Qualität hat eine neue Software-Version (siehe <a href="Entwicklungsstadium_(Software)" title="Entwicklungsstadium (Software)">Entwicklungsstadium (Software)</a>)?</li>
<li>Ist die neue Software-Version qualitativ besser als die vorherige Version?</li>
<li>Hat ein behobener Fehler oder eine neue Anforderung eine Auswirkung auf bestehende Software (Änderung des Verhaltens der Software)?</li>
<li>Ist sichergestellt, dass der Echtbetrieb mit der neuen Software erfolgreich und sicher ist?</li>
<li>Was beinhaltet die Software tatsächlich an neuer <a href="Funktionalit%C3%A4t_(Produkt)" title="Funktionalität (Produkt)">Funktionalität</a> sowie etwaigen Fehlerkorrekturen; ist dies nachvollziehbar?</li>
<li>Lässt sich der Liefertermin der Software noch einhalten, wenn eine Einschätzung der momentanen Qualität der Software nicht möglich ist?</li></ul>
<p>Zur Beispielfrage: „Wann ist ein Programmfehler behoben?“ lautet die Antwort in diesem Fall:
</p>
<dl><dd>„Genau dann, wenn alle schon existierenden Testfälle und auch die für den Programmfehler selbst geschriebenen Testfälle erfolgreich beendet wurden.“</dd></dl>
<p>Eine Rückmeldung liefert nur der ständige Test, und dieser ist durch <a href="Automatisierung" title="Automatisierung">Automatisierung</a> erst möglich und realisierbar.
</p><p>Ein weiterer Vorteil der Testautomatisierung ist die Beschleunigung des Entwicklungsprozesses. Wo bei Software-Projekten ohne Automatisierung die Produktion, die Installation und der Test nacheinander manuell durchgeführt werden, können bei vollautomatisierten Projekten (also wenn außer dem Test auch Produktion und Installation automatisierbar sind) diese drei Schritte automatisch nacheinander gestartet werden, z.&nbsp;B. in einem nächtlichen Lauf. Je nach Umfang des Projektes kann man gegebenenfalls diesen Ablauf abends starten und am nächsten Morgen das Testergebnis verfügbar haben.
</p>
<div class="mw-heading mw-heading2"><h2 id="Automatisierbare_Aktivitäten"><span id="Automatisierbare_Aktivit.C3.A4ten"></span>Automatisierbare Aktivitäten</h2></div>
<p>Prinzipiell lassen sich folgende Aktivitäten automatisieren:
</p>
<ul><li>Testfallerstellung
<ul><li>Testdatenerstellung</li>
<li>Testskripterstellung</li></ul></li>
<li>Testdurchführung</li>
<li>Testauswertung</li>
<li>Testdokumentation</li>
<li>Testadministration</li></ul>
<div class="mw-heading mw-heading3"><h3 id="Testfallerstellung">Testfallerstellung</h3></div>
<p>Abhängig vom verwendeten Format zur Beschreibung eines <a href="Testfall" title="Testfall">Testfalles</a>
lässt sich die Testfallerstellung automatisieren, indem höhersprachliche Beschreibungen <i>(Testspezifikationen)</i> in dieses Format transformiert werden. Zur Testspezifikation werden Sprachen unterschiedlicher Abstraktionsstufe verwendet: einfache tabellenartige Notationen für <a href="Testdaten" class="mw-redirect" title="Testdaten">Testdaten</a> und Funktionsaufrufe, <a href="Skriptsprache" title="Skriptsprache">Skriptsprachen</a> (z.&nbsp;B. <a href="Tcl" title="Tcl">Tcl</a>, <a href="Perl_(Programmiersprache)" title="Perl (Programmiersprache)">Perl</a>, <a href="Python_(Programmiersprache)" title="Python (Programmiersprache)">Python</a>), imperative Sprachen (z.&nbsp;B. <a href="C_(Programmiersprache)" title="C (Programmiersprache)">C</a>, <a href="TTCN-3" title="TTCN-3">TTCN-3</a>), <a href="Objektorientiert" class="mw-redirect" title="Objektorientiert">objektorientierte</a> Ansätze (<a href="JUnit" title="JUnit">JUnit</a>) und deklarative und logische Formalismen sowie <a href="Modellbasiertes_Testen" title="Modellbasiertes Testen">modellbasierte Ansätze</a> (z.&nbsp;B. <a href="TPT_(Software)" title="TPT (Software)">TPT</a>). Dabei wird eine weitgehende und möglichst vollautomatische Übersetzung von Artefakten in einer maschinenfernen fachlichen Sprachebene in Artefakte in einer maschinennahen technischen Sprachebene angestrebt. Ein anderer Ansatz ist es, die Testfallerstellung anhand von zu deklarierenden <a href="Business_Object" class="mw-redirect" title="Business Object">Geschäftsobjekten</a> dynamisch zu generieren. Liegt eine Testspezifikation nicht schon in ablauffähiger Form vor, sondern in einer nicht ausführbaren Sprache (z. B. <a href="UML" class="mw-redirect" title="UML">UML</a>, Excel-Tabelle, oder ähnliches), kann diese unter Umständen mit geeigneten Werkzeugen automatisch in ablauffähige Testfälle übersetzt werden.
</p>
<div class="mw-heading mw-heading4"><h4 id="Testdatenerstellung_und_Testskripterstellung">Testdatenerstellung und Testskripterstellung</h4></div>
<p>Da die Anzahl möglicher Eingabewerte und Abläufe eines Programms oft sehr groß ist, müssen bei der Generierung von Testfällen aus Testspezifikationen Eingabedaten und Abläufe gemäß der zu erzielenden <a href="Testabdeckung" title="Testabdeckung">Testabdeckung</a> ausgewählt werden. Zur Testdatenerstellung kann dabei oft das Datenmodell der Software genutzt werden, zur Testskripterstellung werden beim <a href="Modellbasiertes_Testen" title="Modellbasiertes Testen">modellbasierten Testen</a> Verhaltensmodelle der Software verwendet. Lösungen, die ohne Skripten auskommen, sind auf dem kommerziellen Markt auch verfügbar.
</p>
<div class="mw-heading mw-heading3"><h3 id="Testdurchführung"><span id="Testdurchf.C3.BChrung"></span>Testdurchführung</h3></div>
<p>Die Testdurchführung erfolgt heute weitgehend durch vollautomatische Testwerkzeuge. Abhängig vom Zielsystem kommen hier <a href="Liste_von_Modultest-Software" title="Liste von Modultest-Software">Unit-Test-Tools</a>, Testsysteme für <a href="Grafische_Benutzeroberfl%C3%A4che" title="Grafische Benutzeroberfläche">Grafische Benutzeroberflächen</a>, <a href="Lasttest_(Computer)" title="Lasttest (Computer)">Lasttestsysteme</a>, <a href="Hardware_in_the_Loop" title="Hardware in the Loop">Hardware-in-the-loop</a>-Prüfstände oder andere Werkzeuge zum Einsatz.
</p>
<div class="mw-heading mw-heading3"><h3 id="Testauswertung">Testauswertung</h3></div>
<p>Zur Testauswertung muss das erhaltene Testergebnis mit dem Erwartungswert verglichen werden. Im einfachsten Fall ist hier nur ein Tabellenvergleich vorzunehmen; falls das Sollverhalten allerdings durch logische <a href="Constraint" title="Constraint">Constraints</a> definiert ist oder extrem komplexe Berechnungen enthält, kann das so genannte Orakelproblem auftreten. Werden zwei Software-Versionen oder zwei Testzyklen und damit zwei Testergebnisse gegen das Soll-Ergebnis verglichen, so lassen sich Tendenzaussagen und Qualitätsstatistiken berechnen.
</p>
<div class="mw-heading mw-heading3"><h3 id="Testdokumentation">Testdokumentation</h3></div>
<p>Bei der Testdokumentation wird aus den erhaltenen Testergebnissen ein nachvollziehbarer und verständlicher Testbericht erzeugt. Hierfür können Dokumentgeneratoren und Schablonenwerkzeuge eingesetzt werden.
</p>
<div class="mw-heading mw-heading3"><h3 id="Testadministration">Testadministration</h3></div>
<p>Aufgabe der Testadministration ist die Verwaltung und Versionierung von Testsuiten sowie die Bereitstellung einer adäquaten Benutzungsumgebung. Neben Standardwerkzeugen (z.&nbsp;B. <a href="Concurrent_Versions_System" title="Concurrent Versions System">CVS</a>, <a href="Eclipse_(IDE)" title="Eclipse (IDE)">Eclipse</a>) gibt es eine Reihe von Spezialwerkzeugen, die speziell auf die Belange des Softwaretests zugeschnitten sind.
</p>
<div class="mw-heading mw-heading2"><h2 id="Universelle_Architektur_zur_Testautomatisierung">Universelle Architektur zur Testautomatisierung</h2></div>

<p>Für die Automatisierung der oben genannten Aktivitäten existieren verschiedene Tools. Diese fokussieren stets die Lösung spezieller Aufgaben und unterscheiden sich in Bedienphilosophie, Syntax und Semantik. Daher ist es oft schwierig, die richtigen Tools für eine bestimmte Menge von Aktivitäten auszuwählen bzw. die Tools richtig einzusetzen. Eine Strukturierung und Einordnung der automatisierbaren Aktivitäten zur abstrahierten lösungsneutralen Toolfunktionalität bietet die universelle Testsystem-Architektur. Dazu definiert sie fünf Funktionsebenen: Testmanagement, Testausführung und -auswertung, Testbettsteuerung, Testobjektstimulation und -beobachtung sowie Testobjektumgebung. Die Testsystem-Architektur unterstützt die Integration vorhandener Test-Tools und -Komponenten in Testsysteme und stellt somit eine universelle Grundlage zur Testautomatisierung dar.
</p>
<div style="clear:both;"></div>
<div class="mw-heading mw-heading2"><h2 id="Software_für_automatisierte_Software-Tests"><span id="Software_f.C3.BCr_automatisierte_Software-Tests"></span>Software für automatisierte Software-Tests</h2></div>
<div class="hauptartikel" role="navigation"><span class="hauptartikel-pfeil" title="siehe" aria-hidden="true" role="presentation">→&nbsp;</span><i><span class="hauptartikel-text">Hauptartikel</span>: <a href="Liste_von_Software_f%C3%BCr_automatisierte_Softwaretests" title="Liste von Software für automatisierte Softwaretests">Liste von Software für automatisierte Softwaretests</a></i></div>
<div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2></div>
<ul><li><a rel="nofollow" class="external text" href="https://www.testing-board.com/testautomatisierung/">www.testing-board.com</a> Expertenartikel zur Testautomatisierung und Listen Testautomatisierungswerkzeuge (de)</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Literatur">Literatur</h2></div>
<ul><li>Dmitry Korotkiy: <i>Universelle Testsystem-Architektur in der Mechatronik.</i> Sierke Verlag, Göttingen 2010. ISBN 978-3-86844-238-0</li>
<li>Manfred Baumgartner, Stefan Gwihs, <a href="Richard_Seidl" title="Richard Seidl">Richard Seidl</a>, Thomas Steirer, Marc-Florian Wendland: <cite style="font-style:italic">Basiswissen Testautomatisierung - Aus- und Weiterbildung zum ISTQB® Advanced Level Specialist – Certified Test Automation Engineer</cite>. 3., akt. u. überarb. Auflage. dpunkt.verlag, Heidelberg 2021, ISBN 978-3-86490-675-6, <span style="white-space:nowrap">S.<span style="display:inline-block;width:.2em">&nbsp;</span>398</span>.<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rfr_id=info:sid/de.wikipedia.org:Testautomatisierung&amp;rft.au=Manfred+Baumgartner%2C+Stefan+Gwihs%2C+Richard+Seidl%2C+...&amp;rft.btitle=Basiswissen+Testautomatisierung+-+Aus-+und+Weiterbildung+zum+ISTQB%C2%AE+Advanced+Level+Specialist+-+Certified+Test+Automation+Engineer&amp;rft.date=2021&amp;rft.edition=3.%2C+akt.+u.+%C3%BCberarb.&amp;rft.genre=book&amp;rft.isbn=9783864906756&amp;rft.pages=398&amp;rft.place=Heidelberg&amp;rft.pub=dpunkt.verlag" style="display:none">&nbsp;</span></li></ul></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2022-10-05" href="https://de.wikipedia.org/wiki/?title=Testautomatisierung&amp;oldid=226793237">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>

</body></html>